Methods and apparatus for processing radio modem commands during network data sessions

ABSTRACT

A radio modem includes a serial interface adapted for connection to a host device via a wired serial link; a router coupled to the serial interface; a server coupled to the router; and RF transceiver coupled to the router. The router is configured receive data packets from the host device; identify whether an IP address of the packets match an IP address of the server; identify whether a cookie which identifies the predetermined type of protocol is contained in a cookie field of the packets; in response to identifying a mismatch between the IP addresses, or that the cookie is not contained in the cookie field, cause the packets to be routed to a server via the attachment with the cellular network; and in response to identifying a match between the IP addresses, cause the packets to be routed to the server.

CROSS-REFERENCE TO RELATED APPLICATIONS

This patent application is a continuation of and claims priority to U.S.non-provisional patent application having application Ser. No.12/016,679 and filing date of 18 Jan. 2008, now U.S. Pat. No. 7,646,757which is a continuation of application Ser. No. 10/880,390 having afiling date of 29 Jun. 2004, now U.S. Pat. No. 7,346,028, which furtherclaims priority to a European Patent Application having applicationnumber 03254163.3 and filing date of 30 Jun. 2003, each applicationbeing hereby incorporated by reference herein.

BACKGROUND

1. Field of the Technology

The present disclosure relates generally to radio modems and hostdevices used in connection therewith, and more particularly to methodsand apparatus for processing radio modem commands from a host deviceduring a data communication session between the host device and anetwork server.

2. Description of the Related Art

A radio modem typically includes a radio frequency (RF) transceiver forcommunicating with a wireless communication network and a hostinterface, such as an RS-232 interface, for connecting with a hostdevice. In an AT command mode, the radio modem is able to receive,process, and respond to conventional AT commands from the host device.The AT command mode lets the host device obtain “real-time”radio-specific information, such as radio signal strength informationand wireless network operator information, among other information, fromthe radio modem. On the other hand, in a network data session mode, theradio modem helps maintain a data communication session between the hostdevice and a server of a communication network through an RF link. Thedata communication session may involve an Internet Protocol (IP)connection through which addressable data packets are passed back andforth between the host device and the network server.

During the data communication session, AT command processing between thehost device and the radio modem is generally not available. Therefore,“real-time” radio-specification information cannot be easily obtained bythe host device from the radio modem during the network data session.This information might be useful to the host device, for example, if theinformation were to be visually displayed (e.g. for visual display of aradio signal strength indicator or a wireless network operatoridentifier) or otherwise processed. It would be too complex and costlyif additional interfaces were provided on the devices exclusively for ATcommand processing. Heroic techniques (e.g. breaking into the datasession link, sending command and response information, andreestablishing the data session link) are complicated, prone to failure,and require modification of the host device's data session protocol.

Accordingly, there is a resulting need for methods and apparatus forprocessing radio modem commands during network data sessions.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments of present disclosure will now be described by way ofexample with reference to attached figures, wherein:

FIG. 1 is a block diagram which illustrates pertinent components of ahost device and a radio modem device for communicating through awireless communication network;

FIG. 2 is a particular system structure for communicating with the radiomodem device through the wireless communication network;

FIG. 3 is a more detailed block diagram of the radio modem device whichis coupled to the host device;

FIG. 4 is a flowchart for describing a method of operation for the radiomodem device in FIGS. 1-3; and

FIG. 5 is an illustration of several software protocol layers which maybe utilized in the communication of data packets in the detailedembodiment described.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

In one illustrative example of the present disclosure, a radio modemdevice includes a serial interface adapted for connection to a hostdevice via a wired serial link with use of a PPP connection; a radiomodem router coupled to the serial interface; a radio modem servercoupled to the radio modem router; and RF transceiver processingcircuitry coupled to the radio modem router. The RF transceiverprocessing circuitry is configured configured to provide communicationsover a wireless link with a cellular network, establish a packet dataservice attachment with the cellular network, monitor RSSI informationduring the communications, and maintain an attachment state of theattachment during the communications. The radio modem router isconfigured receive data packets from the host device; remove a PPPwrapper of the packets to reveal an IP address and a port number;identify whether the IP address and the port number match an IP addressand port number of the radio modem server; in response to identifying amismatch between the IP addresses or port numbers, cause the packets tobe routed to a server via the attachment with the cellular network; andin response to identifying a match between the IP addresses and the portnumbers, cause the packets to be routed to the radio modem server. Theradio modem server is configured to receive the packets from the radiomodem router when the IP addresses and the port numbers match; receive acommand code in the packets; receive a sequence number in the packets;and process and respond to the host device in accordance with thecommand and the sequence number in the packets, such that the responseincludes the sequence number. If the command code is for obtaining theRSSI information, then the radio modem server causes the response toinclude the RSSI information. If the command code is for obtaining theattachment state, then the radio modem server causes the response toinclude the attachment state.

FIG. 1 is a block diagram of a communication system 100 which includes ahost device 102, a radio modem device 104, and a wireless communicationnetwork 106. In general, radio modem device 104 provides wirelesscommunication capability and mobility for host device 102 over a radiofrequency (RF) link. With use of radio modem device 104, host device 102is able to communicate with a server (such as a server 160 of a network146 or 148) through wireless network 106. Preferably, data communicationsessions between host device 102 and server 160 involve thecommunication of data packets over an Internet Protocol (IP) connectionas will be described in more detail later below.

Host device 102 and radio modem device 104 may be separate andindependent electronic devices, each having electrical and mechanicalcomponents housed in separate housing units. Alternatively, host device102 and radio modem device 104 may be housed together in the samehousing unit (e.g. in a laptop computer application). In either case,host device 102 is coupled to radio modem device 104 for datacommunication through a connection, such as a wired connection 150.Wired connection 150 and data communication between host device 102 andradio modem device 104 are made possible through electrical/mechanicalinterfaces 126 and 130 of radio modem device 104 and host device 102,respectively. Interfaces 126 and 130 may be configured in accordancewith an RS-232 data interface standard, for example. However, any othersuitable interface or interface standard may be utilized as analternative. Together, host device 102 and radio modem device 104 may bereferred to as a “mobile station” which operates in wireless network106.

Host device 102 includes a control block 128 which is coupled tointerface 130. Control block 128 may be or include one or moreprocessors, such as a microprocessor, which executes a softwareapplication for host device 102. This software application operates inpart to control radio modem device 104 for operation in connection withwireless network 106 and server 160. Additional functionality of thesoftware application will vary and depend on the specific application ofhost device 102. Typically, host device 102 also includes a userinterface 132, which may include one or more user-actuable switches, akeyboard, and/or a display, coupled to control block 128. The displayoperates to visually display received information, stored information,user inputs, and the like. The keyboard, which may be a telephone typekeypad or full alphanumeric keyboard, is normally provided for enteringdata for storage, information for transmission through wireless network106, a telephone number to place a telephone call, commands to beexecuted, and perhaps other or different user inputs.

Radio modem device 104 generally includes a control block 108, a radiofrequency (RF) transceiver 110, and an antenna 112. Control block 108 iscoupled to interface 126 as well as to RF transceiver 110, which iscoupled to antenna 112. Typically, control block 108 is embodied as aprocessor or central processing unit (CPU) which runs operating systemsoftware in a memory component (not shown in FIG. 1). Control block 108will normally control overall operation of radio modem device 104 (alongwith control block 128 of host device 102), whereas specific signalprocessing operations associated with communication functions aretypically performed in RF transceiver 110.

The combined host device 102 and radio modem device 104 (i.e. the mobilestation) sends communication signals to and receives communicationsignals from wireless network 106 over RF link via antenna 112. RFtransceiver 110 of radio modem device 104 typically includes an RFreceiver, an RF transmitter, and associated components, such as one ormore local oscillators (LOs), a processing module such as a digitalsignal processor (DSP) which may be part of control block 108, and an RFpower amplifier (PA). In particular, signals received by antenna 112from wireless network 106 are input to RF transceiver 110, which mayperform common RF receiver functions as signal amplification, frequencydown conversion, filtering, channel selection, analog-to-digital (A/D)conversion, and the like. A/D conversion of a received signal allowsmore complex communication functions such as demodulation and decodingto be performed in the DSP. In a similar manner, signals to betransmitted are processed, including modulation and encoding, forexample, by the DSP. These DSP-processed signals are then fed fordigital-to-analog (D/A) conversion, frequency up conversion, filtering,amplification and transmission over communication network via antenna112. The DSP may not only process communication signals, but may alsoprovide for some control of the receiver and transmitter. It will beapparent to those skilled in art that RF transceiver circuitry 110 willbe adapted to particular wireless network or networks in which themobile station is intended to operate.

In this particular embodiment, the mobile station also operates using aSubscriber Identity Module (SIM) 116 which is connected to or insertedat a SIM interface 114. SIM 116 is one type of a conventional “smartcard” used to identify an end user (or subscriber) of the mobile stationand to personalize the device, among other things. Without SIM 116, themobile equipment is not fully operational for communication throughwireless network 106. By inserting SIM 116 into radio modem device 104,an end user can have access to any and all of his/her subscribedservices. Since SIM 116 is coupled to SIM interface 114, it is coupledto control block 108 through communication lines 118. In order toidentify the subscriber, SIM 116 contains some user parameters such asan International Mobile Subscriber Identity (IMSI). An advantage ofusing SIM 116 is that end users are not necessarily bound by any singlephysical mobile station. SIM 116 may store additional user informationfor the mobile station as well, including datebook (or calendar)information and recent call information. In the embodiment shown, SIMinterface 114 is provided in radio modem device 104; however, SIMinterface 114 may be alternatively provided in host device 102. Asshown, the mobile station may also include a battery interface 120 forreceiving one or more rechargeable batteries 122. Battery 122 provideselectrical power to electrical circuitry, and battery interface 120provides for a mechanical and electrical connection for battery 122.Battery interface 120 is coupled to a regulator 124 which regulatespower to the device. As an alternative to battery interface 120 andbattery 122, the mobile station may include an interface to a standardAC power outlet.

Host device 102 and radio modem device 104 may be or include devices(and/or have functionality associated with devices) such as cellulartelephones, e-mail messaging terminals, Internet-access terminals,personal digital assistants (PDAs), handheld terminals, laptopcomputers, palmtop computers, financial transaction terminals, vehiclelocator terminals, monitoring or metering equipment, etc. In a laptopcomputer application, for example, radio modem device 104 may beinserted in a port on the laptop computer which is host device 102. Inthis case, the laptop computer (i.e. host device 102) would include adisplay monitor, a keyboard, and a mouse for user interface 132 andcontrol block 128 would be embodied as the computer's CPU. A preferredapplication that may be used is a personal information manager (PIM)application having the ability to organize and manage data itemsrelating to user such as, but not limited to, e-mail, calendar events,voice mails, appointments, and task items. Naturally, one or more memorystores are available on the mobile station to facilitate storage of PIMdata items and other information. The PIM application preferably has theability to send and receive data items via the wireless network. In apreferred embodiment, PIM data items are seamlessly integrated,synchronized, and updated via the wireless network, with the mobilestation user's corresponding data items stored and/or associated with ahost computer system thereby creating a mirrored host computer on themobile station with respect to such items. This is especiallyadvantageous where the host computer system is the mobile station user'soffice computer system.

Received data signals, such as text messages, e-mail messages, web pagedownloads, or other data items, are processed by RF transceiver 110,input to control block 108, and sent to host device 102 through wiredconnection 150. Control block 128 of host device 102 further processesthe signals for output to user interface 132 (a visual display or thelike). A user of the mobile station may also compose data items, such asa text or e-mail message, or submit data items to a web page, forexample, using the keyboard in conjunction with the display or perhapswith an auxiliary I/O device of host device 102. These data items arereceived by control block 128 of host device 102, sent to radio modemdevice 104 through wired connection 150, received at control block 108of radio modem device 104, and transmitted by RF transceiver 110 toserver 160 through wireless network 106.

In the particular embodiment shown in FIG. 1, radio modem device 104 andwireless network 106 are configured in accordance with Global Systemsfor Mobile communication (GSM) and General Packet Radio Service (GPRS)for communication over the RF link. However, any suitable wirelesstechnologies may be employed, such as those associated with CodeDivision Multiple Access (CDMA), Mobitex, and DataTAC data networks. Asshown in the embodiment of FIG. 1, wireless network 106 includes a basestation controller (BSC) 136 with an associated tower station 134, aMobile Switching Center (MSC) 142, a Home Location Register (HLR) 140, aServing General Packet Radio Service (GPRS) Support Node (SGSN) 138, anda Gateway GPRS Support Node (GGSN) 144. MSC 142 is coupled to BSC 136and to a landline network, such as a Public Switched Telephone Network(PSTN) 146. SGSN 138 is coupled to BSC 136 and to GGSN 14, which is inturn coupled to a public or private data network 148 (such as theInternet). HLR 140 is coupled to MSC 142, SGSN 138, and GGSN 144.

Station 134 is a fixed transceiver station, and station 134 and BSC 136are together referred to herein as the fixed transceiver equipment. Thefixed transceiver equipment provides wireless network coverage for aparticular coverage area commonly referred to as a “cell”. The fixedtransceiver equipment transmits communication signals to and receivescommunication signals from mobile stations within its cell via station134. The fixed transceiver equipment normally performs such functions asmodulation and possibly encoding and/or encryption of signals to betransmitted to the mobile station in accordance with particular, usuallypredetermined, communication protocols and parameters, under control ofits control block. The fixed transceiver equipment similarly demodulatesand possibly decodes and decrypts, if necessary, any communicationsignals received from the mobile station within its cell. Communicationprotocols and parameters may vary between different networks. Forexample, one network may employ a different modulation scheme andoperate at different frequencies than other networks. The wireless linkshown in communication system 100 of FIG. 1 represents one or moredifferent channels, typically different radio frequency (RF) channels,and associated protocols used between wireless network 106 and themobile station. Those skilled in art will appreciate that a wirelessnetwork in actual practice may include hundreds of cells, each served bya station 134 (i.e. or station sector), depending upon desired overallexpanse of network coverage. All pertinent components may be connectedby multiple switches and routers (not shown), controlled by multiplenetwork controllers.

For all mobile stations registered with a network operator, permanentdata (such as the mobile station user's profile) as well as temporarydata (such as the mobile station's current location) are stored in HLR140. In case of a voice call to the mobile station, HLR 140 is queriedto determine the current location of the mobile station. A VisitorLocation Register (VLR) of MSC 142 is responsible for a group oflocation areas and stores the data of those mobile stations that arecurrently in its area of responsibility. This includes parts of thepermanent mobile station data that have been transmitted from HLR 140 tothe VLR for faster access. However, the VLR of MSC 142 may also assignand store local data, such as temporary identifications. Optionally, theVLR of MSC 142 can be enhanced for more efficient co-ordination of GPRSand non-GPRS services and functionality (e.g. paging forcircuit-switched calls which can be performed more efficiently via SGSN138, and combined GPRS and non-GPRS location updates).

Serving GPRS Support Node (SGSN) 138 is at the same hierarchical levelas MSC 142 and keeps track of the individual locations of mobilestations. SGSN 138 also performs security functions and access control.Gateway GPRS Support Node (GGSN) 144 provides interworking with externalpacket-switched networks and is connected with SGSNs (such as SGSN 138)via an IP-based GPRS backbone network. SGSN 138 performs authenticationand cipher setting procedures based on the same algorithms, keys, andcriteria as in existing GSM. In order to access GPRS services, themobile station first makes its presence known to wireless network 106 byperforming what is known as a GPRS “attach”. This operation establishesa logical link between the mobile station and SGSN 138 and makes themobile station available to receive, for example, pages via SGSN,notifications of incoming GPRS data, SMS messages over GPRS, etc. Inorder to send and receive GPRS data, the mobile station assists inactivating the packet data address that it wants to use. This operationmakes the mobile station known to GGSN 144; interworking with externaldata networks can thereafter commence. User data may be transferredtransparently between the mobile station and the external data networksusing, for example, encapsulation and tunneling. Data packets areequipped with GPRS-specific protocol information and transferred betweenthe mobile station and GGSN 144.

As described above, host device 102 is able to communicate with server160 through wireless network 106 with use of radio modem device 104.Preferably, data communication sessions between host device 102 andserver 160 preferably involve the communication of data packets throughan Internet Protocol (IP) connection. As shown in FIG. 1, host device102 is assigned IP address 129 which is used for such data session.

FIG. 2 illustrates a system structure for communicating with mobilestation 102/104, showing basic components of an IP-based wireless datanetwork, which is one type of packet data network. As shown in FIG. 2, agateway 240 may be coupled to an internal or external address resolutioncomponent 235 and one or more network entry points 205. Data packets aretransmitted from gateway 240, which is source of information to betransmitted to mobile station 102/104, through wireless network 106 bysetting up a wireless network tunnel 225 from gateway 240 to mobilestation 102/104. In order to create this wireless tunnel 225, a uniquenetwork address is associated with mobile station 102/104. In anIP-based wireless network, however, network addresses are typically notpermanently assigned to a particular mobile station 102/104 but insteadare dynamically allocated on an as-needed basis. It is thus preferablefor mobile station 102/104 to acquire a network address and for gateway240 to determine this address so as to establish wireless tunnel 225.

Network entry point 205 is generally used to multiplex and demultiplexamongst many gateways, corporate servers, and bulk connections such asthe Internet, for example. There are normally only a limited number ofthese network entry points 205, since they are also intended tocentralize externally available wireless network services. Network entrypoints 205 often use some form of an address resolution component 235that assists in address assignment and lookup between gateways andmobile stations. In this example, address resolution component 235 isshown as a dynamic host configuration protocol (DHCP) as one method forproviding an address resolution mechanism.

A central internal component of wireless network 106 of FIG. 2 is anetwork router 215. Normally, network routers 215 are proprietary to theparticular network, but they could alternatively be constructed fromstandard commercially available hardware. The purpose of network routers215 is to centralize thousands of fixed transceiver stations 220normally implemented in a relatively large network into a centrallocation for a long-haul connection back to network entry point 205. Insome networks there may be multiple tiers of network routers 215 andcases where there are master and slave network routers 215, but in allsuch cases the functions are similar. Often network router 215 willaccess a name server 207, in this case shown as a dynamic name server(DNS) 207 as used in the Internet, to look up destinations for routingdata messages. Fixed transceiver equipment 220, as described above,provides wireless links to mobile stations such as mobile station102/104.

Wireless network tunnels such as a wireless tunnel 225 are opened acrosswireless network 106 in order to allocate necessary memory, routing, andaddress resources to deliver IP packets. Such tunnels 225 areestablished as part of what are referred to as Packet Data Protocol or“PDP” contexts. To open wireless tunnel 225, mobile station 102/104 mayindicate the domain or network entry point 205 with which it wishes toopen wireless tunnel 225. In this example, the tunnel first reachesnetwork router 215 which uses name server 207 to determine which networkentry point 205 matches the domain provided. Multiple wireless tunnelscan be opened from one mobile station 102/104 for redundancy, or toaccess different gateways and services on the network. Once the domainname is found, the tunnel is then extended to network entry point 205and necessary resources are allocated at each of the nodes along theway.

Network entry point 205 then uses the address resolution (or DHCP 235)component to allocate an IP address for mobile station 102/104. Inparticular, this IP address is assigned to host device 102 and stored asIP address 129 (see FIG. 1). When the IP address has been allocated tothe host device and communicated to gateway 240 (FIG. 2), informationcan then be forwarded from gateway 240 to mobile station 102/104.

Wireless tunnel 225 of FIG. 2 typically has a limited life, depending onmobile station's 102/104 coverage profile and activity. Wireless network106 will tear down wireless tunnel 225 after a certain period ofinactivity or out-of-coverage period, in order to recapture resourcesheld by this wireless tunnel 225 for other users. The main reason forthis is to reclaim the IP address temporarily reserved for mobilestation 102/104 when wireless tunnel 225 was first opened. Once the IPaddress is lost and wireless tunnel 225 is torn down, gateway 240 losesall ability to initiate IP data packets to mobile station 102/104.

Referring now to FIG. 3, a more detailed block diagram of radio modemdevice 104 is shown to describe more particular aspects related to thepresent disclosure. As shown in FIG. 3, radio modem device 104 includesan interface switching mechanism 302, an AT interface 304, an AT commandprocessor 306, a router 308, a radio modem server 310, an RF transceiverprocessing block 314, and an RF power amplifier (PA) 316. Preferably,interface switching mechanism 302, AT interface 304, AT commandprocessor 306, router 320, radio modem server 310 and RF transceiverprocessing block 314 are included as a part of the same control block108. Control block 108 is preferably embodied as one or more processors(such as a microprocessor) with its components implemented as softwareprocesses.

Interface 126 is coupled to interface switching mechanism 302 whichswitches between either AT interface 304 (for AT command processing) orrouter 308 (for data communication sessions between host device 102 andserver 160). When in an AT command processing mode, interface switchingmechanism 302 is switched such that interface 126 is coupled to ATinterface 304. AT interface 304 is coupled to AT command processor 306for interfacing AT command and response information between host device102 and AT command processor 306. AT commands are one well-known type ofmodem commands and may be referred to as “Hayes” modem commands. Somebasic AT commands include “D” for dialing a telephone number, “A” foranswering an incoming call, “H” for hook status, and “Z” for reset, asexamples; many other AT modem commands are available. AT commandprocessor 306 is also coupled to RF transceiver processing block 316 toaccess or process radio-specific information, such as radio signalstrength or wireless network operator identification, when needed. Theradio-specific information may include, for example, radio signalstrength information (e.g. a received signal strength indicator or RSSI)or wireless network operator information.

Router 308 is coupled to interface switching mechanism 302 and RFtransceiver processing block 314 for routing data packets of a datacommunication session 318 (shown as a dashed line) between host device102 and server 160 over the RF link. When in a data communication mode,interface switching mechanism 302 is switched such that interface 126 iscoupled to router 308. Preferably, data communication session 318between host device 102 and server 160 utilizes an IP connection. Thedata communicated may involve that of any suitable application,including e-mail information, calendar or appointment information,voicemail notifications, web page downloads, etc.

Router 308 is also coupled to radio modem server 310 for routing datapackets of a data communication session 320 between host device 102 andradio modem server 310. The data packets from host device 102 to radiomodem device 104 carry radio modem commands which are processed at radiomodem server 310. Radio modem server 310 generates responses to themodem commands, and this response information is passed back throughrouter 320 in the form of data packets addressed to host device 102.Performing as described, radio modem server 310 may be referred to as amodem command processing server. Such communication and processing canoccur during data communication session 318 between host device 102 andserver 160. Like data communication session 318, data communicationsession 320 between host device 102 and radio modem server 310 utilizesan IP connection. Radio modem server 310 is also coupled to RFtransceiver processing block 316 to access or process radio-specificinformation, such as radio signal strength (e.g. received signalstrength indictor or RSSI) or wireless network operator identification,when needed. Host device 102 uses this information for visual display orother purposes as needed.

Further describing FIG. 3 operation, radio modem device 104 operates ina first operational mode and a second operational mode. Theseoperational modes are mutually exclusive modes for the radio modemdevice. That is, the radio modem device operates in one and only one ofthese modes at any given time. In the first operational mode, radiomodem device 104 is operative to receive, process, and respond to modemcommands (e.g. AT modem commands) from host device 102. Here, interfaceswitching mechanism 302 is switched to provide communication betweenhost device 102 and AT command processor 306 through AT interface 304.Thus, AT command and response information may be communicated betweenhost device 102 and radio modem device 104 in this mode. In the secondoperational mode, radio modem device 104 is operative to communicatedata packets of data communication session 318 between host device 102and server 160 over an RF link. An IP connection is preferably used fordata communication session 318. Here, interface switching mechanism 302is switched to facilitate communication between host device 102 androuter 320. Router 320 routes data packets addressed to server 160through RF transceiver processing block 314 for communication to server160 over the RF link, and routes data packets addressed to host device102 through RF transceiver processing block 314.

While data communication session 318 is established, however, hostdevice 102 may also transmit data packets which carry modem commandsintended for receipt and processing by radio modem device 104. This mayalso be carried out in data communication session 320 between hostdevice 102 and radio modem device 104, which also utilizes an IPconnection. Thus, during data communication session 318, radio modemdevice 104 is operative to receive data packets from host device 102that carry radio modem commands, process the radio modem commands, andtransmit data packets to host device 102 which carry responses to theradio modem commands. Router 308 identifies data packets addressed toradio modem server 310 which are routed to radio modem server 310 forradio modem command and response processing. Conversely, router 308identifies data packets addressed to particular applications at hostdevice 102 and are accordingly sent thereto. Advantageously,radio-specific information may be obtained from radio modem device 104even during data communication session 318 between host device 102 andnetwork server 160.

As described above, data communication session 320 between host device102 and radio modem server 310 preferably utilizes an IP connection.Preferably, data communication session 320 also involves theencapsulation of datagram protocols based on a Point-to-Point Protocol(PPP) standard. For example, the PPP may be based on the methodologydescribed in “The Point-to-Point Protocol (PPP)”, Request For Comments(RFC) 1661, issued in July 1994 by the Internet Engineering Task Force(IETF). In general, PPP is the Internet standard for transporting IPpackets over standard asynchronous serial lines. PPP provides a methodfor encapsulating datagrams over serial links so that, for example, a PCmay connect to the Internet through a telephone line with use of amodem. PPP also provides a Link Control Protocol (LCP) for establishing,configuring, and testing the data-link connection, as well as a familyof Network Control Protocols (NCPs) for establishing and configuringdifferent network-layer protocols. PPP session establishment orconnection utilizes three “phases” which include a link establishmentphase, an (optional) authentication phase, and a network-layer protocolphase, which use known methodologies.

Furthermore, data communication session 320 between host device 102 andradio modem server 310 also preferably involves the use of a UserDatagram Protocol (UDP). In general, UDP is a connectionlesstransport-layer protocol (Layer 4) that belongs to the Internet protocolfamily. UDP is basically an interface between IP and upper-layerprocesses. UDP “ports” distinguish multiple applications running on asingle device from one another. A UDP packet format typically containsfour fields which include a source port field, a destination port field,a length field, and a checksum field. In the present embodiment, aunique UDP data header is also utilized to identify modem command andresponse data.

In delivering data packets to radio modem server 310 in the embodimentdescribed, host device 102 sends data packets with a destination addressthat matches an IP address 312 of radio modem server 310 and a UDP portnumber associated with such modem command processing. IP address 312assigned to radio modem device 104 may be any suitable IP address. IPaddress “10.0.0.1”, for example, may be utilized. Any suitable UDP portnumber may be assigned as well, such as UDP port number 52790, which isarbitrarily chosen. Thus, in the present embodiment, the completeaddress used to deliver data packets to radio modem device 104 may be10.0.0.1:52790. To communicate or respond to host device 102, radiomodem server 310 utilizes IP address 129 and the UDP port number of thecorresponding application. As mentioned above, a unique UDP data headermay also be utilized to identify modem command and response data.

FIG. 4 is a flowchart for describing a method of operation for the radiomodem device of FIGS. 1-3. The flowchart of FIG. 4 relates to a radiomodem device which operates in a first operational mode and a secondoperational mode. The first operational mode may be referred to as an ATcommand mode and the second operational mode may be referred to as anetwork data session mode. Beginning at a start block 402 of FIG. 4, theradio modem device is operating in either the AT command mode or thenetwork data session mode (step 404). If the radio modem device is inthe AT command mode, then the radio modem device operates to receive,process, and respond to AT commands from a host device (step 406). Ifthe radio modem device is in the network data session mode, then theradio modem device operates to facilitate a data communication sessionbetween the host device and a server of a communication network througha radio frequency (RF) link (step 408). In doing so, the radio modemdevice operates to communicate data packets of the data communicationsession between the host device and the server through the RF link (step408). The data communication session preferably utilizes an IPconnection.

During the data communication session, the radio modem device monitors adestination address field of the data packets to identify whether thedestination address matches an IP address (and e.g. UDP port number) ofthe radio modem server (step 410). If the destination address of thedata packets does not match the IP address (including e.g. the UDP portnumber) of the radio modem server (“NO” branch of step 410), then thedata packets are intended for receipt by the network and the radio modemdevice continues to facilitate the data communication session in step408. On the other hand, if the destination address of the data packetsdoes match the IP address (including e.g. the UDP port number) of theradio modem server at step 410 (“YES” branch of step 410), then theradio modem server itself receives and processes these data packets. Inparticular, the radio modem server identifies and processes a radiomodem command in the data packets which is from the host device (step412). In processing the radio modem command, the radio modem serverproduces response information which is transmitted back to the hostdevice in the form of data packets addressed to the IP address (and e.g.its associated UDP port number) of the host device. Preferably, asdescribed earlier above, a unique UDP data header may also utilized toidentify modem command and response data.

Thus, even during the data communication session, the radio modem deviceis operative to receive one or more data packets from the host devicewhich carry radio modem commands, process the radio modem commands, andtransmit data packets to the host device which carry responses to theradio modem commands. Advantageously, radio-specific information may beobtained by the host device from the radio modem device even during datacommunication sessions between the host device and the network server.

FIG. 5 is an illustration of a several software protocol layers whichmay be utilized in the communication of data packets in the embodimentdescribed. An example of transmission of data packets from host device102 to server 160 and radio modem server 310 will be described; howeverit is readily apparent that the response and reception of data may beemployed accordingly. In host device 102, a UDP layer 502 generates aUDP packet (e.g. at the user interface) which is destined for anapplication on server 160. The UDP packet is received at an IP layer 504of host device 102 and wrapped in an IP packet. This resulting UDP/IPpacket is received at a PPP layer 506 of host device 102 and wrapped ina PPP packet. The resulting UDP/IP/PPP packet is sent to radio modemdevice 104 through wired connection 150 (e.g. the RS-232 interface). Inradio modem device 104, a PPP layer 508 receives the UDP/IP/PPP packetand removes the PPP packet wrapper for further processing. Identifyingthat the UDP/IP packet is destined for server 160, it is sent to the RFtransceiver processing block for communication and transmission over theRF link. The UDP/IP packet is then received at server 160, beingprocessed at an IP layer 514 which removes the IP packet layer. Theunderlying UDP packet is processed by a UDP layer 516 of server 160. Ofcourse, TCP may be alternatively utilized when sending data packets backand forth between host device 102 and server 160.

After the PPP wrapper is removed in PPP layer 508 of radio modem device104, however, the underlying UDP/IP packet may be identified as beingdestined for radio modem server 310 (e.g. the “10.0.0.1” IP address). Inthis case, the UDP/IP packet is sent to an IP layer 510 of radio modemserver 310 which removes the IP wrapper. In a UDP layer 512 of radiomodem server 310, the resulting UDP packet resulting UDP packet shouldmatch the UDP port number (e.g. 52790) and, if so, radio modem server310 processes the underlying “modem command” in the packet. UDP portnumbers that do not match may be rejected. Similarly, radio modem server310 produces response information which is transmitted back to hostdevice 102 in the form of data packets addressed to the IP address ofhost device 102 (and e.g. its associated UDP port number for theapplication).

QUIP: A Specific Implementation. In one particular embodiment, thetechnique may be referred to as a Queried UDP Information Protocol or“QUIP”. QUIP is a specific protocol for passing modem status requestsand responses between the host device and the radio modem device. A UDP,running over the existing IP/PPP link between the host device and thenetwork, is used to transport QUIP packets. QUIP is implemented on theradio modem device as a small UDP service. Packets addressed to the QUIPUDP port of the radio modem device are intercepted and processed.Responses will be returned to the host device's sending IP address-port.

In this embodiment, UDP address 10.0.0.1:52790 is assigned to the radiomodem device. IP address 10.0.0.1 is used because packets are easilyaddressed (no discovery is required—every radio modem device uses thesame address). Port 52790 is an arbitrary port number chosen from thereserved/dynamic range; any suitable port number may be chosen. In theunlikely case of a non-QUIP use of address 10.0.0.1:52790, packetsreceived from the host device that do not contain a “magic cookie” (seebelow) will be forwarded to the network over the RF link.

QUIP Data Format. A summary of the QUIP packet header is shown below.The fields are transmitted from left to right. Every QUIP packetcontains the following header:

For example, consider the following:

struct QUIPPacketHeader {  DWORD MagicCookie;  BYTE Identifier;  BYTEReserved[3];  BYTE Data[...]; };Packet example={0x50495551, 0x12, 0, 0, 0,

-   -   {0x01, 0x02, 0x03, 0x04, . . . }};        Send(&example) will produce the following byte stream, starting        at the left:

0x51 0x55 0x49 0x50 0x12 0x00 0x00 0x00 0x01 0x02 0x03 0x04 . . . .

The Magic Cookie (32 bits) field identifies the packet as a QUIP type(see Constraints below). The Identifier field is a sequence counter formatching requests and replies. To send a new request, increment thesequence counter, fill in the data portion, and send the packet. Expecta response with exactly the same identifier. The Reserved field (24bits) is reserved for future expansion and should be zero.

QUIP Commands. The Data field of every QUIP Packet has the followingheader:

struct QUIPCmdHeader {  WORD CommandCode;  WORD Reserved; };The Command Code field (15+1 bits) identifies the command type. If apacket is received with an unknown Code field, a Code-Reject packet istransmitted. Current valid codes include: Code-Reject, Code-CREG,Code-RCIQ, Code-COPS, and Code-CGATT (see Constraints below). The ‘*’flag (the most significant bit of the Command Code) indicates theoriginating end. A ‘0’ indicates that the host device sent the packet; a‘1’ indicates that the radio modem device sent the packet. For example,consider the command “0x1ABC”. The Command Code of the response will be“0x9ABC”. The Reserved field (24 bits) is reserved for future expansionand should be zero. The Data field is dependent upon the specificcommand.

“Code-Reject” Description. Reception of a QUIP packet with an unknownCommand Code indicates that the peer is operating with a differentversion. This must be reported back to the sender of the unknown code bytransmitting a Code-Reject. Note that sending a Code-Reject to the radiomodem device will cause Code-Reject to be returned. This is a way torequest the QUIP Version Number. A summary of the Code-Reject packetformat is shown below. The fields are transmitted from left to right.

Command Code field is 0x0000 for Code-Reject. The QUIP Version Numberfield identifies the QUIP protocol version—current 1.0.1.0 (that is,0x01000100). The Rejected-Packet field contains a copy of the QUIPpacket which is being rejected. The Rejected-Packet should be truncatedto comply with the peer's established MRU (1492 bytes).

“Code-CREG” Description. See “AT+CREG?” in the AT Command specification.A summary of the Code-CREG packet format is shown below. The fields aretransmitted from left to right.

The Command Code field is 0x0001 for Code-CREG.

“Code-CREG” Response Description. See “AT+CREG? Response” in the ATCommand specification. A summary of the Code-CREG packet format is shownbelow. The fields are transmitted from left to right.

The Command Code field is “0x8001” for Code-CREG Response. For <n>, seethe AT specification (0=Network registration unsolicited result codedisabled (default); and 1=Network registration unsolicited result codeenabled+CREG. For <stat>, see the AT specification (0=Not registered, MEis not currently searching a new operator to which to register;1=Registered, home network; 2=Not registered, but ME is currentlysearching a new operator to which to register; 3=Registration denied;4=Unknown; 5=Registered, roaming).

“Code-RCIQ” Description. See “AT+RCIQ?” in the AT Command specification.A summary of the Code-RCIQ packet format is shown below. The fields aretransmitted from left to right.

The Command Code field is “0x0002” for Code-RCIQ.

“Code-RCIQ?” Response Description. Code-RCIQ Response. A summary of theCode-RCIQ packet format is shown below. The fields are transmitted fromleft to right.

The Command Code field is 0x8003 for Code-RCIQ Response. Serving CellInformation: <BSIC>, <TCH>, <RSSI>, <LAC>, <Cell ID> (See the ATspecification). Dedicated Channel Information: <DC TCH>, <DC ChannelMode>.

“Code-COPS” Description. See “AT+COPS?” in the AT Command specification.A summary of the Code-COPS packet format is shown below. The fields aretransmitted from left to right.

The Command Code field is “0x0003” for Code-COPS.

“Code-COPS” Response Description. See “AT+COPS?” Response in the ATCommand specification. A summary of the Code-COPS packet format is shownbelow. The fields are transmitted from left to right.

The Command Code field is 0x8003 for Code-RCIQ Response. <Operator Name>is the Network Operator Name (26 bytes); <Short Operator Name> is theNetwork Operator Name (8 bytes); and <MCC>/<MNC> are the GSM locationand area identification number.

“Code-CGATT” Description. See “AT+CGATT?” in the AT CommandSpecification. A summary of the Code-CGATT packet format is shown below.The fields are transmitted from left to right.

The Command Code field is “0x0004” for Code-CGATT.

“Code-CGATT” Response Description. See “AT+CGATT?” Response in the ATspecification. A summary of the Code-CGATT packet format is shown below.The fields are transmitted from left to right.

The Command Code field is “0x8004” for Code-RCIQ Response. <AttachState> is GPRS Attach state (8 bit Boolean flag).

Future Expansion of QUIP. The QUIP modem commands described aboveparallel and are similar to AT commands. One ordinarily skilled in theart will appreciate that further modem commands, AT-like or not, can beeasily added. Unlike AT, QUIP is not a strict command and responseprotocol. Because of such flexibility, a “register & push” system forcertain information may be utilized as well. For example, it might beuseful to register for RSSI updates and automatically receive periodicupdates of the RSSI. Furthermore, multiple info requests could becombined into the same request packet. Similarly, multiple responsescould be combined into the same response packet. It is also possible tofragment long responses into two or more packets.

Final Comments. What has been described are methods and apparatus foruse in processing radio modem commands during network data sessions. Inone illustrative example, a radio modem device includes a serialinterface adapted for connection to a host device via a wired seriallink with use of a PPP connection; a radio modem router coupled to theserial interface; a radio modem server coupled to the radio modemrouter; and RF transceiver processing circuitry coupled to the radiomodem router. The RF transceiver processing circuitry is configured toprovide communications over a wireless link with a cellular network,establish a packet data service attachment with the cellular network,monitor RSSI information during the communications, and maintain anattachment state of the attachment during the communications. The radiomodem router is configured receive data packets from the host device;remove a PPP wrapper of the packets to reveal an IP address and a portnumber; identify whether the IP address and the port number match an IPaddress and port number of the radio modem server; in response toidentifying a mismatch between the IP addresses or port numbers, causethe packets to be routed to a server via the attachment with thecellular network; and in response to identifying a match between the IPaddresses and the port numbers, cause the packets to be routed to theradio modem server. The radio modem server is configured to receive thepackets from the radio modem router when the IP addresses and the portnumbers match; receive a command code in the packets; receive a sequencenumber in the packets; and process and respond to the host device inaccordance with the command and the sequence number in the packets, suchthat the response includes the sequence number. If the command code isfor obtaining the RSSI information, then the radio modem server causesthe response to include the RSSI information. If the command code is forobtaining the attachment state, then the radio modem server causes theresponse to include the attachment state.

The above-described embodiments of the present application are intendedto be examples only. Those of skill in the art may effect alterations,modifications and variations to the particular embodiments withoutdeparting from the scope of the application. The invention describedherein in the recited claims intend to cover and embrace all suitablechanges in technology.

1. A method in a radio modem device for use in processing data packets communicated from a host device using a predetermined type of protocol, the radio modem device being configured to communicate with a cellular telecommunications network over a wireless link and communicate with the host device over a wired serial link, the method comprising the steps of: maintaining a Point-to-Point Protocol (PPP) connection between the host device and the radio modem device over a wired serial link; maintaining a wireless link for communications with the cellular telecommunications network; monitoring radio signal strength indicator (RSSI) information during the communications with the cellular telecommunication network; establishing a packet data service attachment with the cellular telecommunications network over the wireless link; maintaining an attachment state of the packet data service attachment during the operation; receiving data packets from the host device; removing a PPP wrapper of data packets to reveal a destination IP address and a destination port number; identifying whether the destination IP address and the destination port number match an IP address and port number of a radio modem server of the radio modem device; identifying whether a cookie which identifies the predetermined type of protocol is contained in a cookie field of the data packets; in response to identifying a mismatch between the IP addresses or the port numbers, or that the cookie is not contained in the cookie field: causing the data packets to be routed to a server, over the wireless link, using the packet data service attachment with the cellular telecommunications network; in response to identifying a match between the IP addresses and the port numbers when the cookie is contained in the cookie field: causing the data packets to be routed to the radio modem server in the radio modem device; receiving a command code in the data packets at the radio modem server; receiving a sequence number in the data packets at the radio modem server; processing and responding to the host device in accordance with the command and the sequence number in the data packets, such that the response to the host device includes the sequence number, and further wherein: if the command code is for obtaining the RSSI information, then causing the response to include the RSSI information; and if the command code is for obtaining the attachment state, then causing the response to include the attachment state.
 2. The method of claim 1, wherein the packet data service attachment comprises a General Packet Radio Service (GPRS) attachment with the cellular telecommunications network, and the attachment state comprises a GPRS attach state with the cellular telecommunications network.
 3. The method of claim 1, further comprising: maintaining a registration state for registration with the cellular telecommunication network; and when there is a match between the IP addresses and the port numbers: if the command code is for obtaining the registration state for registration with the cellular telecommunications network, then causing the response to include the registration state.
 4. The method of claim 1, further comprising: maintaining a registration state for registration with the cellular telecommunication network; and when there is a match between the IP addresses and the port numbers: if the command code is for obtaining the registration state for registration with the cellular telecommunications network, then causing the response to include the registration state, the registration state being defined as one of a plurality of possible registration states including: (1) not registered, (2) registered with a home network, and (3) registered but roaming outside of the home network.
 5. The method of claim 1, further comprising: facilitating a data synchronization between user data items of a personal information manager application of the host device and corresponding user data items of the server in the causing of the data packets to be routed to the server over the wireless link with the cellular telecommunications network.
 6. The method of claim 1, wherein a predetermined bit in the command code and response is set with one of a first setting or a second setting, the first setting indicating origination from the host device and the second setting indicating origination from the radio modem device.
 7. The method of claim 1, wherein the value of the IP address assigned to the radio modem server is the same as the value of the IP address assigned to radio modem servers in other radio modem devices operative with the host device.
 8. The method of claim 1, wherein the wired serial connection comprises an RS-232 connection.
 9. A radio modem device configured to communicate with a cellular telecommunications network, comprising: a serial interface configured for connection to a host device via a wired serial link with use of a Point-to-Point Protocol (PPP) connection; a radio modem router coupled to the serial interface; a radio modem server coupled to the radio modem router; radio frequency (RF) transceiver processing circuitry coupled to the radio modem router; the RF transceiver processing circuitry being configured to provide communications over a wireless link with the cellular telecommunications network, establish a packet data service attachment with the cellular telecommunications network, monitor radio signal strength indicator (RSSI) information during the communications, and maintain an attachment state of the packet data service attachment during the communications; the radio modem router being configured to: receive data packets communicated from the host device using a predetermined type of protocol; remove a PPP wrapper of the data packets to reveal a destination IP address and a destination port number; identify whether the destination IP address and the destination port number match an IP address and port number of the radio modem server; identify whether a cookie which identifies the predetermined type of protocol is contained in a cookie field of the data packets; in response to identifying a mismatch between the IP addresses or the port numbers, or that the cookie is not contained in the cookie field: cause the data packets to be routed to a server, over the wireless link, using the packet data service attachment with the cellular telecommunications network; in response to identifying a match between the IP addresses and the port numbers when the cookie is contained in the cookie field: cause the data packets to be routed to the radio modem server; the radio modem server being configured to: receive the data packets from the radio modem router when the IP addresses and the port numbers match; receive a command code in the data packets; and receive a sequence number in the data packets; process and respond to the host device in accordance with the command and the sequence number in the data packets, such that the response to the host device includes the sequence number, and further wherein: if the command code is for obtaining the RSSI information, then cause the response to include the RSSI information; and if the command code is for obtaining the attachment state, then cause the response to include the attachment state.
 10. The radio modem device of claim 9, wherein the packet data service attachment comprises a General Packet Radio Service (GPRS) attachment with the cellular telecommunications network, and the attachment state comprises a GPRS attach state with the cellular telecommunications network.
 11. The radio modem device of claim 9, wherein the radio modem server is further configured to: maintain a registration state for registration with the cellular telecommunication network; and when there is a match between the IP addresses and the port numbers: if the command code is for obtaining the registration state for registration with the cellular telecommunications network, then cause the response to include the registration state to be sent to the host device.
 12. The radio modem device of claim 9, wherein the radio modem server is further configured to: maintain a registration state for registration with the cellular telecommunication network; and when there is a match between the IP addresses and the port numbers: if the command code is for obtaining the registration state for registration with the cellular telecommunications network, then cause the response to include the registration state, the registration state being defined as one of a plurality of possible registration states including: (1) not registered, (2) registered with a home network, and (2) registered but roaming outside of the home network.
 13. The radio modem device of claim 9, which is further operative to: facilitate a data synchronization between user data items of a personal information manager application of the host device and corresponding user data items of the server in the causing of the data packets to be routed to the server over the wireless link.
 14. The radio modem device of claim 9, wherein a predetermined bit in the command code and response is set with one of a first setting or a second setting, the first setting indicating origination from the host device and the second setting indicating origination from the radio modem device.
 15. The radio modem device of claim 9, wherein the value of the IP address assigned to the radio modem server is the same as the value of the IP address assigned to radio modem servers in other radio modem devices operative with the host device. 